# 创建一个闭包
def fun_01(func):
    # 这里的*args, **kwargs表示形参
    def a(*args, **kwargs):
        print("我是闭包============")
        # 执行func方法,这里的*args, **kwargs表示拆包,
        # 闭包返回的值就是装饰器的返回值
        return func(*args, **kwargs)

    return a


# 装饰器返回值
@fun_01
def fun_02(num, *args, **kwargs):
    print(f"num={num},**args={args},**kwargs={kwargs}")
    return "我是装饰器"

# fun_02 = fun_01(fun_02)
test = fun_02(1, 2, 3, name="张三")
print("调用fun_02的返回值", test)
